package db.dao;

import db.dto.*;
import db.exceptions.*;

public interface ProcedurecabinetDao
{
	/** 
	 * Inserts a new row in the ProcedurecabinetDto table.
	 */
	public int insert(ProcedurecabinetDto dto) throws ProcedurecabinetDaoException;

	/** 
	 * Updates a single row in the ProcedurecabinetDto table.
	 */
	public void update(int pk, ProcedurecabinetDto dto) throws ProcedurecabinetDaoException;

	/** 
	 * Deletes a single row in the ProcedurecabinetDto table.
	 */
	public void delete(int pk) throws ProcedurecabinetDaoException;

	/** 
	 * Returns the rows from the ProcedurecabinetDto table that matches the specified primary-key value.
	 */
	public ProcedurecabinetDto findByPrimaryKey(int pk) throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the criteria 'NUMBER = :number'.
	 */

	public ProcedurecabinetDto[] findAll() throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the criteria 'ID_DEPARTMENT = :idDepartment'.
	 */
	public ProcedurecabinetDto[] findByDepartment(int idDepartment) throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the criteria 'NUMBER = :number'.
	 */
	public ProcedurecabinetDto[] findWhereNumberEquals(int number) throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the criteria 'ID_DEPARTMENT = :idDepartment'.
	 */
	public ProcedurecabinetDto[] findWhereIdDepartmentEquals(int idDepartment) throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the criteria 'NAME = :name'.
	 */
	public ProcedurecabinetDto[] findWhereNameEquals(String name) throws ProcedurecabinetDaoException;

	/** 
	 * Sets the value of maxRows
	 */
	public void setMaxRows(int maxRows);

	/** 
	 * Gets the value of maxRows
	 */
	public int getMaxRows();

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the specified arbitrary SQL statement
	 */
	public ProcedurecabinetDto[] findByDynamicSelect(String sql, Object[] sqlParams) throws ProcedurecabinetDaoException;

	/** 
	 * Returns all rows from the ProcedurecabinetDto table that match the specified arbitrary SQL statement
	 */
	public ProcedurecabinetDto[] findByDynamicWhere(String sql, Object[] sqlParams) throws ProcedurecabinetDaoException;

}
